home *** CD-ROM | disk | FTP | other *** search
- /* @(#)getenv.c 2.1 */
- /*
- * auxgetenv(name)
- * returns ptr to value associated with name, if any, else NULL
- */
- #define NULL 0
- static char *nvmatch();
-
- pascal long AUXDispatch(selector,q)
- short selector;
- char *q;
- extern 0xABf9;
- #define AUX_GET_ENVIRON 11 /* get pointer to environ */
-
- char *
- auxgetenv(name)
- register char *name;
- {
- register char *v;
- char **p;
-
- /* copy the environment */
- AUXDispatch(AUX_GET_ENVIRON,(char *)&p);
-
- if(p == NULL)
- return(NULL);
- while(*p != NULL)
- if((v = nvmatch(name, *p++)) != NULL)
- return(v);
- return(NULL);
- }
-
- /*
- * s1 is either name, or name=value
- * s2 is name=value
- * if names match, return value of s2, else NULL
- * used for environment searching: see getenv
- */
-
- static char *
- nvmatch(s1, s2)
- register char *s1, *s2;
- {
- while(*s1 == *s2++)
- if(*s1++ == '=')
- return(s2);
- if(*s1 == '\0' && *(s2-1) == '=')
- return(s2);
- return(NULL);
- }
-